1. Field of the Invention
This invention relates to an apparatus, a method, and a computer program product for reading information stored in a storage medium, and a storage medium where information is stored in accordance with charge amount.
2. Description of the Related Art
In recent years, a semiconductor memory element such as a flash memory for storing information in accordance with the charge amount held therein are widely known. Also, a multi-valued memory technique for storing the information of 2 bits or more by setting a plurality of threshold values of the charge amount has been developed.
The memory element of charge accumulation type is discharged with time and every read operation due to parasitic resistance of the memory element and input resistance of a sense amplifier and the like. Since the accumulated charge amount is reduced by natural discharge also even when a read or write operation is not performed for a long time the situation in which the information cannot be read is liable to occur after power is not switched on for a long time especially with regard to a nonvolatile memory. In the multi-valued memory, on the other hand, the decreased output of the memory element by discharge has so great an effect that the number of read operations is limited.
In view of this, a technique has been proposed in which before the situation occurs in which the information cannot be read, the output voltage of the memory element is detected and when the output voltage is reduced, the information is stored again by the refresh operation, thereby the information is maintained to be read correctly (see U.S. Pat. No. 5,909,449, for example).
The method described in U.S. Pat. No. 5,909,449, however, poses a problem that when a long time has passed from a write operation and the output voltage of the memory element has greatly decreased, the information to be written by the refresh operation cannot be read from the memory elements. Therefore, the memory elements that have passed a long time from the write operation cannot be refreshed, with the result that the information cannot be read correctly.